/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package model.fornecedor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import model.contato.Contato;
import model.endereco.Endereco;
import model.produto.Produto;

/**
 *
 * @author Marcos
 */
@Entity
@Table(name = "fornecedor", schema = "sistemavendas")
public class Fornecedor implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int codigo;
    @Column(name = "razao_social", length = 300, nullable = false)
    private String razaoSocial;
    private Endereco endereco;
    @Column(name = "cnpj", length = 20, nullable = false)
    private String cnpj;
    private Contato contato;
    @Temporal(TemporalType.DATE)
    @Column(name = "data_cadastro", nullable = true)
    private Date dataCadastro;
    @ManyToMany
    @JoinTable(name = "fornecedor_produto", schema = "sistemavendas", joinColumns = {@JoinColumn(name = "cod_fornecedor")}, 
     inverseJoinColumns = {@JoinColumn(name = "cod_produto")})
    private List<Produto> produtos;
    
    public Fornecedor(){
        this.endereco = new Endereco();
        this.contato = new Contato();
        
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    
    
    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getRazaoSocial() {
        return razaoSocial;
    }

    public void setRazaoSocial(String razaoSocial) {
        this.razaoSocial = razaoSocial;
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public List<Produto> getProdutos() {
        return produtos;
    }

    public void setProdutos(List<Produto> produtos) {
        this.produtos = produtos;
    }
    
    
    
    public Endereco getEndereco(){
        return endereco;
    }
    
    public Contato getContato(){
        return contato;
    }
}
